#ifndef DENTITY_H
#define DENTITY_H

#include "DConstants.h"
#include <string>
/*****************************************************************
 *
 *
 *
 *****************************************************************/
class DEntity
{
public:	
	DEntity( );
	DEntity( const DEntity &d ); 
	DEntity( const char *name );
	DEntity( DConstants::EntityType entityType );
	DEntity( const char *name, DConstants::EntityType entityType );
	const DEntity& operator=( const DEntity &rhs);
	
	virtual ~DEntity();
	
	void setName( const char *name );
	const char *getName() const;
	
	inline void setType( DConstants::EntityType entityType )
	{ m_entityType = entityType;  }
	inline DConstants::EntityType getType( ) { return m_entityType; }
	
	inline void setParent( DEntity* const parent ){ m_parent = parent; }
	inline DEntity* getParent() const { return m_parent; }	
	
private:
	std::string m_name;
	DEntity *m_parent;
	DConstants::EntityType m_entityType; 
};
#endif